From c84d7a87ad1973a8c11b4d1a271d52199460a5c3 Mon Sep 17 00:00:00 2001 From: "iap10@freefall.cl.cam.ac.uk" Date: Sat, 12 Feb 2005 03:06:56 +0000 Subject: [PATCH] bitkeeper revision 1.1193 (420d72d0IYG07QeED-l3FKZf5M7o1g) fix build Signed-off-by: ian@xensource.com --- xen/arch/x86/dom0_ops.c | 7 ++++++- xen/arch/x86/vmx.c | 14 ++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/dom0_ops.c b/xen/arch/x86/dom0_ops.c index 9e7ec8c31b..4174fb2640 100644 --- a/xen/arch/x86/dom0_ops.c +++ b/xen/arch/x86/dom0_ops.c @@ -348,16 +348,21 @@ void arch_getdomaininfo_ctxt( struct exec_domain *ed, full_execution_context_t *c) { int i; - unsigned long vmx_domain = ed->arch.arch_vmx.flags; +#ifdef __i386__ /* Remove when x86_64 VMX is implemented */ + unsigned long vmx_domain; extern void save_vmx_execution_context(execution_context_t *); +#endif c->flags = 0; memcpy(&c->cpu_ctxt, &ed->arch.user_ctxt, sizeof(ed->arch.user_ctxt)); +#ifdef __i386__ + vmx_domain = ed->arch.arch_vmx.flags; if (vmx_domain) save_vmx_execution_context(&c->cpu_ctxt); +#endif if ( test_bit(EDF_DONEFPUINIT, &ed->ed_flags) ) c->flags |= ECF_I387_VALID; diff --git a/xen/arch/x86/vmx.c b/xen/arch/x86/vmx.c index 2a6537b518..4fa444b709 100644 --- a/xen/arch/x86/vmx.c +++ b/xen/arch/x86/vmx.c @@ -646,6 +646,20 @@ static void vmx_print_line(const char c, struct exec_domain *d) print_buf[index++] = c; } +void save_vmx_execution_context(execution_context_t *ctxt) +{ + __vmread(GUEST_SS_SELECTOR, &ctxt->ss); + __vmread(GUEST_ESP, &ctxt->esp); + __vmread(GUEST_EFLAGS, &ctxt->eflags); + __vmread(GUEST_CS_SELECTOR, &ctxt->cs); + __vmread(GUEST_EIP, &ctxt->eip); + + __vmread(GUEST_GS_SELECTOR, &ctxt->gs); + __vmread(GUEST_FS_SELECTOR, &ctxt->fs); + __vmread(GUEST_ES_SELECTOR, &ctxt->es); + __vmread(GUEST_DS_SELECTOR, &ctxt->ds); +} + #ifdef XEN_DEBUGGER void save_xen_regs(struct xen_regs *regs) { -- 2.30.2